![]() |
![]() |
|
Der Lizenzgeber (LicenseProdider) wird vor der Klassendefinition mit dem gleichnamigen Attribut LicenseProvider bekannt gegeben. Auf Klassenebene ist eine Variable vom Typ License deklariert. Das Objekt enthält, wenn es initialisiert ist, den Lizenzschlüssel aus den Lizenzinformationen. Erzeugt wird die Lizenz im Konstruktor durch den Lizenzmanager. Dessen statische Methode Validate prüft, ob eine Lizenz erteilt werden kann. Übergeben werden muss der Methode der Typ des lizenzanfordernden Objekts sowie optional das Objekt selbst. Kann die Lizenz nicht erteilt werden, wird eine Ausnahme vom Typ LicenseException ausgelöst. Sie können anstelle von Validate auch auf die Methode IsValid zurückgreifen, die im Falle einer Nichterteilung keine Exception auslöst. Damit sind die Vorbereitungen schon getroffen. Wir brauchen nur noch den Code zu kompilieren und haben eine, wenn auch aufgrund des einfachen Lizenzproviders, schwach lizenzierte Komponente, die aber schon geschützt ist. Bereitstellung einer Lizenzdatei (.LIC)Sie können nun zur Projektmappe eine Windows-Anwendung hinzufügen und die Toolbox um das Steuerelement NumericControl ergänzen. Versuchen Sie jetzt, das Steuerelement auf die Form zu ziehen, werden Sie mit einer Fehlermeldung konfrontiert, denn der Lizenzmanager findet keine gültigen Lizenzinformationen. Wie sollte er auch, wir haben dem Steuerelement auch noch keine mit auf den Weg gegeben. Lizenzen sind in Lizenzdateien enthalten, die üblicherweise die Dateierweiterung LIC haben. Grundsätzlich kann eine Lizenzdatei überall gespeichert werden. Wird jedoch LicLicenseFileProvider benutzt, dann muss die Speicherung an einer ganz bestimmten Lokalität erfolgen. Es handelt sich um den Ordner, der im Eigenschaftsfenster von der Eigenschaft Path angezeigt wird, wenn Sie in der Verweisliste den Verweis NumericTextbox markieren. In diesem Ordner befindet sich auch das Kompilat des Benutzersteuerelements. Die LIC-Datei muss einem vorgeschriebenen Namen entsprechen. Er setzt sich zusammen aus dem Namespace und dem Klassennamen. Befindet sich die Klasse NumericTextBox im Namespace LicNumericTextbox, lautet der Bezeichner der Lizenzdatei somit: LicNumericTextbox.NumericTextbox.lic Die Lizenzdatei ist in diesem Fall eine einfache Textdatei, die Sie mit jedem beliebigen Editor schreiben können. Der Inhalt ist vorgeschrieben und muss lauten: LicNumericTextbox.NumericTextbox is a licensed component. Die Datei »Licences.licx«Versuchen Sie nun erneut, das Steuerelement in die Form zu ziehen, werden Sie Erfolg haben, denn nun liegt eine gültige Validierung vor. Bei der Instanziierung wird im Ausgabeverzeichnis der Projektdateien die Datei Licences.licx erzeugt, bei der es sich ebenfalls um eine Textdatei handelt. In ihr sind alle Komponenten nebst Versionsnummer, Kulturinformationen und öffentlichem Schlüssel aufgeführt. Das automatische Erstellen der Licences.licx-Datei funktioniert im Visual Studio 2005 nur, wenn der Designer dazu eingesetzt wird. Erstellen Sie hingegen eine Komponente mittels Programmcode, versagt der Automatismus, was dazu führt, dass kein Lizenzschlüssel in die Anwendung hineinkompiliert wird. Die lizenzierte Komponente würde ihren Dienst erst gar nicht antreten. In diesem Fall müssen Sie manuell die Komponente in die Licences.licx-Datei eintragen und unter Umständen diese Datei sogar selbst erzeugen. Das Kompilieren der AnwendungHinter der Datei LC.exe verbirgt sich der Lizenz-Compiler, der alle in Licences.licx enthaltenen Einträge der Reihe nach abarbeitet. Der Lizenz-Compiler lädt die Assemblierung und ermittelt die Lizenzgeber (LicenseProvider) der eingetragenen Komponenten. LicenseProvider haben die Aufgabe, eine Lizenz zu suchen und daraus den Lizenzschlüssel zu ermitteln, der sich in der Lizenzdatei befindet. Handelt es sich um einen gültigen Schlüssel, wird er in die Datei .Licences eingetragen. Konventionsgemäß steht vor der Dateierweiterung der Name der ausführbaren EXE-Datei. Sie finden die Datei im Ausgabeverzeichnis der Anwendung.
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Copyright © Galileo Press 2006
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das <openbook> denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.